APRS Telemetry with UIDIGI and TNC-2 PADs
I've been experimenting with APRS telemetry. I'm using an MFJ-1274 TNC-2 with UIDIGI ver.1.9b3 as an APRS PAD (packet assembler/disassembler) and modem. An Arduino UNO R3 reads connected sensors, assembles the data into an APRS telemetry format Information Field, and sends it (as ascii text) to the TNC via its RS-232 serial port. UIDIGI builds an AX.25 packet using pre-configured addresses, attaches the information field, and transmits the packet. Telemetry data transmissions are scheduled by the Arduino. Beacon text transmissions can be scheduled by UIDIGI in the TNC.
The UIDIGI eprom file was created using Marco Savegnago IW3FQG's configuration utilities (UITOOLS32.zip) *(1) and Tim Cunningham N8DEU's
UIGOLD.bin *(2). (UIGOLD.bin is a "tidied-up" version of the stock UIDIGI 19b3 binary).
UIDIGI defaults to converse mode on power-up rather than sysop control (command)
mode - in converse mode the TNC packetizes and transmits any (CR)-terminated text string received via the serial port. The stock and UIGOLD versions also default to DIGIPEAT "ON" mode when powered up; I changed one parameter byte in the binary so that the TNC defaults to DIGIPEAT "OFF" *(3).
One feature of UIDIGI is that it transmits the following ID beacon every 60 minutes: "UIDIGI: UIDIGI 1.9". While handy for monitoring the health of a remote digipeater, scheduled telemetry transmissions make this feature unnecessary. The ID beacon rate and text are fixed in firmware and not configurable.
Why use a discontinued MFJ TNC ?
MFJ TNCs (and other TAPR TNC2-compatibles) can often be found at hamfests for $5, sometimes as low as $2 or even free. They are almost indestructible - of the 10 or so I've picked up only one needed a few chips replaced. The most common faults were: dead lithium coin cells, corrupted bbu RAM (requiring a hard reset), bad baudrate dipswitch settings (check the ON-OFF positions printed on the dipswitch itself - some are different), and missing or incorrectly-placed jumpers.
To run UIDIGI the TNC must be hardware compatible with TAPR TNC-2s, such as the MFJ-1270, -1270B, and -1274. Other models such as the MFJ-1270C, -1274C and -1278 can be modified to run UIDIGI - the instructions are available at various locations online.
It is possible to program an Arduino to assemble AX.25 UI packets and perhaps even digitally generate the Bell 202 tones, but using a TNC with UIDIGI to handle these functions allows you to concentrate on debugging your Arduino program.
For remote telemetry stations, a TNC with UIDIGI is less expensive than using a laptop PC. Also, the whole system - Aduino, TNC-2 and VHF radio - can be powered from a 12V battery. After a complete power outage, with a battery charge monitor circuit, the system will resume normal telemetry operation unattended. UIDIGI also permits remote Sysop control of the TNC by radio. Sysop commands that turn the front panel CON and STA LEDS on and off can be used to control external devices.
Notes and References
(1) UIDIGI 19b3 and UITOOLS32.ZIP - Marco Savegnago IW3FQG -
https://groups.io/g/UIDIGI
(2) UIDIGI EPROM settings and UIGOLD.BIN - Tim Cunningham N8DEU -
https://www.qsl.net/n8deu/uidigi_eprom_settings.htm
(3) The byte in the UIDIGI 19b3 eprom at 0x0328 (= 0x01) is the default Digipeat ON setting. Changing this to 0x00 in the binary sets Digipeat OFF at powerup if you wish to use the TNC strictly for telemetry.
(4) APRS PROTOCOL REFERENCE Protocol Version 1.2 -
https://ham.packet-radio.net/packet/aprs-wb2osz/APRS12c.pdf
Bill Griffith VE3WGX revised 2026-09-30